<?php

namespace app\admin\validate;

use app\lib\expection\ParameterException;
use Exception;
use think\Validate;

class BaseValidate extends Validate
{
    /**
     * 验证http上传的参数是否符合验证器的规则
     * @return bool   验证通过返回true 否则抛出错误信息
     * @throws Exception 抛出验证不通过的错误信息
     */
    public function goCheck($data=''){
        if(!$data){
            //获取http参数
            $params =request()->param();
            //调用父类check()和batch()方法对参数进行批量验证
            $result = $this ->batch()->check($params);
        }else{
            //调用父类check()和batch()方法对参数进行批量验证
            $result = $this ->batch()->check($data);
        }

        //对结果进行判断
        if($result){
            return true;
        }else{
            apiReturn(303,$this->getError());
        }
    }
    /**
     * 判断上传参数是否为正整数
     * @param $value  mixed 需要验证参数的值
     * @param string $rule 验证规则
     * @param string $data 上传参数的数组
     * @param string $field 验证参数的字段
     * @return bool|string true|验证失败的信息
     */
    public function isPositiveInt($value,$rule='',$data='',$field=''){
        if(is_numeric($value)&& intval($value).''===$value&&$value>0){
            return true;
        }else{
            return $field.'必须为正整数';
        }
    }
    /**
     * 判断获得的参数不为空
     */
    protected function isNotEmpty($value,$rule='',$data='',$field=''){
        if(empty($value)){
            return false;
        }else{
            return true;
        }
    }
    /**
     * 验证码验证方法
     */
    protected  function checkCaptcha($value,$rule=''){
        //实例化验证码类
        $captcha= new Captcha();
        if($captcha->check($value)){
            return true;
        }else{
            return '验证码错误！';
        }
    }

}
